﻿#ifndef WRWORKGUIAPPLICATION_H
#define WRWORKGUIAPPLICATION_H

#include "WRGlobal.h"
#include <QObject>
#include <QApplication>

//本地服务。
class QLocalServer;
//表示工作界面配置。
class WRWorkGuiConfig;

//表示工作界面程序。
class WRSOFT_GUIAPP_WORKING_COMMON_CLASS WRWorkGuiApplication : public QObject
{
    Q_OBJECT

private:
    QApplication m_app;
    QLocalServer* m_server;
    QWidget* m_window;

    //执行程序。
    int exec(const WRWorkGuiConfig& config);
    //检测是否有实例正在运行,如果正在运行，则返回True，否则返回False。
    bool check(const QString& serverName);

private slots:
    //删除窗口对象。
    void onDeleteWindow(void);
    //新连接激活实例。
    void onNewConnection(void);

public:
    //初始化当前对象。
    WRWorkGuiApplication(int &argc, char **argv, const QString& configFileName = QString());
    //清理当前对象所占用的相关资源。
    ~WRWorkGuiApplication();

    //运行程序。
    int run();
};

#endif // WRWORKGUIAPPLICATION_H
